﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for AutoresArtigo
/// </summary>
public partial class AutoresArtigo
{
    public static void createAutoresArtigo(AutoresArtigo autoresArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        dc.AutoresArtigos.InsertOnSubmit(autoresArtigo);
        dc.SubmitChanges();
    }
    public static List<Artigo> findArtigosByIdPessoa(Guid idPessoa)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AutoresArtigos.Where(p => p.idPessoa.Equals(idPessoa)).Select(p => p.Artigo).ToList();
    }
    public static AutoresArtigo findByIdPessoaIdArtigo(Guid idPessoa, Guid idArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AutoresArtigos.Single(p => p.idPessoa.Equals(idPessoa) && p.idArtigo.Equals(idArtigo));
    }
    public static bool ArtigoByEmailArtigo(string email, Guid idArtigo)
    {
        bool retorno = false;
        if (Usuario.exist(email))
        {
            Usuario usuario = Usuario.findByEmail(email);
            DataClassesDataContext dc = new DataClassesDataContext();
            retorno = dc.AutoresArtigos.Any(p => p.idArtigo.Equals(idArtigo) && p.idPessoa.Equals(usuario.Pessoa.id));
        }
        return retorno;
    }
    public static bool ArtigoByEmailArtigoConfirmado(string email, Guid idArtigo)
    {
        if(Usuario.exist(email))
        {
            Usuario usuario = Usuario.findByEmail(email);
            DataClassesDataContext dc = new DataClassesDataContext();
            return dc.AutoresArtigos.Any(p => p.idArtigo.Equals(idArtigo) && p.idPessoa.Equals(usuario.Pessoa.id) && p.confirmado.Equals(true));
            return true;
        }
        else
            return false;
    }
    public static bool clearByArtigo(Guid idArtigo)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            dc.AutoresArtigos.DeleteAllOnSubmit(dc.AutoresArtigos.Where(p=>p.idArtigo.Equals(idArtigo)));
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}